@@ -17,6 +17,7 @@ from account.models import UserInfo |
||
17 | 17 |
from coupon.models import UserCouponInfo |
18 | 18 |
from integral.models import SaleclerkSubmitLogInfo |
19 | 19 |
from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, ModelInfo, DistributorInfo |
20 |
+from member.models import GoodsOrderInfo |
|
20 | 21 |
from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo |
21 | 22 |
from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode, |
22 | 23 |
ProductMachineStatusCode, UserStatusCode) |
@@ -668,8 +669,56 @@ def distributor_list(request): |
||
668 | 669 |
|
669 | 670 |
infos = list(DistributorInfo.objects.filter(status=True).values_list('distributor_name', flat=True).distinct().order_by('distributor_name')) |
670 | 671 |
|
671 |
- return response(200, 'Get Model List Success', u'获取型号列表成功', data={ |
|
672 |
+ return response(200, 'Get Model List Success', u'获取经销商列表成功', data={ |
|
672 | 673 |
'distributors': infos |
673 | 674 |
}) |
674 | 675 |
|
676 |
+def member_goods_order(request): |
|
677 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
|
678 |
+ admin_id = request.POST.get('admin_id', '') |
|
679 |
+ phone = request.POST.get('phone', '') |
|
680 |
+ good_type = request.POST.get('good_type', '') |
|
681 |
+ page = request.POST.get('page', 1) |
|
682 |
+ num = request.POST.get('num', 20) |
|
683 |
+ |
|
684 |
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID: |
|
685 |
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH) |
|
686 |
+ |
|
687 |
+ try: |
|
688 |
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) |
|
689 |
+ except AdministratorInfo.DoesNotExist: |
|
690 |
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) |
|
691 |
+ |
|
692 |
+ orders = GoodsOrderInfo.objects.filter(phone__icontains=phone, status=True).order_by('-created_at') |
|
693 |
+ |
|
694 |
+ if good_type: |
|
695 |
+ orders = orders.filter(good_type=good_type) |
|
696 |
+ |
|
697 |
+ count = orders.count() |
|
698 |
+ orders, left = pagination(orders, page, num) |
|
699 |
+ orders = [order.admindata for order in orders] |
|
700 |
+ |
|
701 |
+ return response(200, 'Get Member Goods Order List Success', u'获取会员商品订单列表成功', data={ |
|
702 |
+ 'orders': orders, |
|
703 |
+ 'left': left, |
|
704 |
+ 'count': count |
|
705 |
+ }) |
|
706 |
+ |
|
707 |
+def member_goods_order_update(request): |
|
708 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
|
709 |
+ admin_id = request.POST.get('admin_id', '') |
|
710 |
+ order_id = request.POST.get('order_id', '') |
|
711 |
+ tracking_number = request.POST.get('tracking_number', '') |
|
712 |
+ |
|
713 |
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID: |
|
714 |
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH) |
|
715 |
+ |
|
716 |
+ try: |
|
717 |
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) |
|
718 |
+ except AdministratorInfo.DoesNotExist: |
|
719 |
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) |
|
720 |
+ |
|
721 |
+ GoodsOrderInfo.objects.filter(pk=order_id, status=True).update(tracking_number=tracking_number) |
|
722 |
+ |
|
723 |
+ return response(200, 'Get Member Goods Order Update Success', u'获取会员商品订单修改成功') |
|
675 | 724 |
|
@@ -322,6 +322,9 @@ urlpatterns += [ |
||
322 | 322 |
|
323 | 323 |
url(r'^admin/list/model$', admin_views.model_list, name='model_list'), |
324 | 324 |
url(r'^admin/list/distributor$', admin_views.distributor_list, name='distributor_list'), |
325 |
+ |
|
326 |
+ url(r'^admin/member/goods/order$', admin_views.member_goods_order, name='member_goods_order'), |
|
327 |
+ url(r'^admin/member/goods/order/update$', admin_views.member_goods_order_update, name='member_goods_order_update'), |
|
325 | 328 |
] |
326 | 329 |
|
327 | 330 |
urlpatterns += [ |
@@ -135,6 +135,23 @@ class GoodsOrderInfo(BaseModelMixin): |
||
135 | 135 |
|
136 | 136 |
def __unicode__(self): |
137 | 137 |
return unicode(self.pk) |
138 |
+ |
|
139 |
+ @property |
|
140 |
+ def admindata(self): |
|
141 |
+ good = GoodsInfo.objects.get(good_id=self.good_id) |
|
142 |
+ return { |
|
143 |
+ 'order_id': self.pk, |
|
144 |
+ 'good_id': self.good_id, |
|
145 |
+ 'good_name': good.title, |
|
146 |
+ 'good_type': good.good_type, |
|
147 |
+ 'user_id': self.user_id, |
|
148 |
+ 'user_name': self.name, |
|
149 |
+ 'user_phone': self.phone, |
|
150 |
+ 'user_address': self.address, |
|
151 |
+ 'tracking_number': self.tracking_number, |
|
152 |
+ 'integral': self.integral, |
|
153 |
+ 'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d %H:%M'), |
|
154 |
+ } |
|
138 | 155 |
|
139 | 156 |
|
140 | 157 |
class RightInfo(BaseModelMixin): |